package org.nfIt.service;

import com.github.pagehelper.PageInfo;
import org.nfIt.dto.system.AssginRoleDto;
import org.nfIt.dto.system.LoginDto;
import org.nfIt.dto.system.SysUserDto;
import org.nfIt.entity.system.SysUser;
import org.nfIt.vo.system.LoginVo;

/**
 * ClossName:SysUserService
 * Pakage:org.nfIt.service
 * Description
 *
 * @Author L
 * @Create 2024/6/17 20:17
 * @Version 2023.1.3
 */
public interface SysUserService {
    /**
     * 登入
     * @param loginDto 登录提交过来的数据
     */
    LoginVo login(LoginDto loginDto);

    /**
     * 获取当前登入用户信息
     * @param token
     * @return
     */
    SysUser getUserInfo(String token);

    /**
     * 退出登入
     * @param token
     */
    void logout(String token);

    /**
     * 条件分页查询
     * @param sysUserDto 条件
     * @param pageNum 当前页
     * @param pageSize 每页记录数
     */
    PageInfo<SysUser> findByPage(SysUserDto sysUserDto, Integer pageNum, Integer pageSize);

    /**
     * 添加用户
     * @param sysUser
     */
    void saveSysUser(SysUser sysUser);

    /**
     * 修改用户
     * @param sysUser
     */
    void updateSysUser(SysUser sysUser);

    /**
     * 删除用户
     * @param userId
     */
    void deleteById(Long userId);

    /**
     * 给用户分配角色,保存选着的角色
     */
    void doAssign(AssginRoleDto assginRoleDto);
}
